package com.lsyw.intergrate.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 菜单表
 * </p>
 *
 * @author 刘磊
 * @since 2023-04-24
 */
@Data
@Accessors(chain = true)

public class SysMenu implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 父菜单ID
     */
    @ApiModelProperty(value = "父菜单ID")
    private String parentId;

    /**
     * 菜单名称
     */
    @ApiModelProperty(value = "菜单名称")
    private String name;

    /**
     * 菜单编号
     */
    @ApiModelProperty(value = "菜单编号")
    private String code;

    /**
     * 请求地址
     */
    @ApiModelProperty(value = "请求地址")
    private String path;

    /**
     * 菜单类型（1目录 2菜单 3按钮）
     */
    @ApiModelProperty(value = "菜单类型（1目录 2菜单 3按钮）")
    private int category;

    /**
     * 权限标识
     */
    @ApiModelProperty(value = "权限标识")
    private String perms;

    /**
     * 判断是否大屏
     */
    @ApiModelProperty(value = "判断是否大屏")
    private String layout;

    /**
     * 菜单图标
     */
    @ApiModelProperty(value = "菜单图标")
    private String icon;

    /**
     * 显示状态（0显示 1隐藏)
     */
    @ApiModelProperty(value = "显示状态（0显示 1隐藏)")
    private int visible;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private int sort;

    /**
     * 状态  1正常   2注销
     */
    @ApiModelProperty(value = "状态  1正常   2注销")
    private int status;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String gmtCreateUser;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtCreate;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String gmtModifiedUser;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtModified;
    /**
     * 是否已删除 0否 1是
     */
    @ApiModelProperty(value = "是否已删除 0否 1是")
    private int delFlag;

    /**
     * 二级权限
     */
    @ApiModelProperty(value = "二级权限")
    @TableField(exist = false)
    List<SysMenu> sysMenuList;

}
